#include <stdio.h>

int main()
{
    char buf[2048];
    while (gets(buf) == buf)
    {
        //从屏幕读入一行字符串，当gets返回值不为缓冲区的首地址时则停止读入
        printf("%s\n", buf); //并且将该字符串显示输出到屏幕
    }
    return 0;
}

// gets函数的缓冲区虽然由用户提供，但是用户无法指定其一次最多输入多少字节的内容，这一点导致gets变成了一个非常危险的函数
//为了测试成功，可以        ./gets_risk < stream
//这里的stream是有stream.c文件编译后生成的可执行文件
//执行后系统产生了错误信息：段错误。原因是输入的字符过多，造成了gets函数的缓冲区越界，而导致程序崩溃了。